昨天講了Migration 資料庫遷移,但沒有提到資料結構部分
今天就實際加上資料結構的設定來試試看
打開前幾天新增role的遷移檔,
在這個遷移檔裡面可以看到有兩個function,
分別為up、down
還記得在昨天的Day16 【Laravel 學習歷程】- Migration 資料庫遷移我們有提到
我們透過遷移檔建立資料結構,建立完後下遷移指令
php artisan migrate:make create_role_table --create=role
而在function up()裡面就是要做建立資料結構這件事
如上圖他們會先預設幫我們固定建立2個欄位
$table->increments('id');
$table->timestamps();
來了解一下他的資料欄位型態
| 指令 | 功能描述 | 
|---|---|
$table->bigIncrements('id'); | 
ID 自動增量,使用相當於「big integer」型態 | 
$table->bigInteger('votes'); | 
相當於 BIGINT 型態 | 
$table->binary('data'); | 
相當於 BLOB 型態 | 
$table->boolean('confirmed'); | 
相當於 BOOLEAN 型態 | 
$table->char('name', 4); | 
相當於 CHAR 型態 | 
$table->date('created_at'); | 
相當於 DATE 型態 | 
$table->dateTime('created_at'); | 
相當於 DATETIME 型態 | 
$table->decimal('amount', 5, 2); | 
相當於 DECIMAL 型態,並帶有精度與尺度 | 
$table->double('column', 15, 8); | 
相當於 DOUBLE 型態 | 
$table->enum('choices', array('foo', 'bar')); | 
相當於 ENUM 型態 | 
$table->float('amount'); | 
相當於 FLOAT 型態 | 
$table->increments('id'); | 
相當於 Incrementing 型態(資料表主鍵) | 
$table->integer('votes'); | 
相當於 INTEGER 型態 | 
$table->longText('description'); | 
相當於 LONGTEXT 型態 | 
$table->mediumInteger('numbers'); | 
相當於 MEDIUMINT 型態 | 
$table->mediumText('description'); | 
相當於 MEDIUMTEXT 型態 | 
$table->morphs('taggable'); | 
加入整數 taggable_id 與字串  taggable_type | 
$table->nullableTimestamps(); | 
與 timestamps() 相同,但允許 NULL | 
$table->smallInteger('votes'); | 
相當於 SMALLINT 型態 | 
$table->tinyInteger('numbers'); | 
相當於 TINYINT 型態 | 
$table->softDeletes(); | 
加入 deleted_at 欄位於軟刪除使用 | 
$table->string('email'); | 
相當於 VARCHAR 型態 equivalent column | 
$table->string('name', 100); | 
相當於 VARCHAR 型態,並指定長度 | 
$table->text('description'); | 
相當於 TEXT 型態 | 
$table->time('sunrise'); | 
相當於 TIME 型態 | 
$table->timestamp('added_on'); | 
相當於 TIMESTAMP 型態 | 
$table->timestamps(); | 
加入 created_at 和 updated_at 欄位 | 
$table->rememberToken(); | 
加入 remember_token 使用 VARCHAR(100) NULL | 
| ---- | ---- | 
->nullable() | 
標示此欄位允許 NULL | 
->default($value) | 
宣告此欄位的預設值 | 
->unsigned() | 
設定整數是無分正負 | 
依上表新增我們資料表要新增的欄位後,
再在cmd下指令就可以遷移上去了
昨天也有提到,遷移錯了還可以重新rollback
然而function down()就是要幫我們做這件事情
如果是要rollback整張表就是如預設提供
Schema::dropIfExists('roles');
or
假如我們只是想rollback其中一個欄位
Schema::table('roles', function(Blueprint $table)
{
    $table->dropColumn('id');
});
Migrations差不多就是這樣了